/**
 *
 */
package com.iapcursos.portal.procefet.modelo.beans.sessions;

import java.util.List;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import com.iapcursos.portal.procefet.modelo.beans.entitys.Aula;
import com.iapcursos.portal.procefet.modelo.beans.entitys.Disciplina;
import com.iapcursos.portal.procefet.modelo.beans.entitys.Conteudo;
import com.iapcursos.portal.procefet.modelo.beans.entitys.Horario;
import com.iapcursos.portal.procefet.modelo.beans.entitys.Pessoa;
import com.iapcursos.portal.procefet.modelo.beans.entitys.TipoConteudo;
import com.iapcursos.portal.procefet.modelo.beans.entitys.Turma;
import com.iapcursos.portal.procefet.modelo.beans.entitys.Unidade;
import com.iapcursos.portal.procefet.modelo.beans.sessions.interfaces.GerenciadorAulas;
import com.iapcursos.portal.procefet.modelo.beans.sessions.interfaces.GerenciadorDisciplinas;
import com.iapcursos.portal.procefet.modelo.beans.sessions.interfaces.GerenciadorConteudo;
import com.iapcursos.portal.procefet.modelo.beans.sessions.interfaces.GerenciadorHorarios;
import com.iapcursos.portal.procefet.modelo.beans.sessions.interfaces.GerenciadorPapeis;
import com.iapcursos.portal.procefet.modelo.beans.sessions.interfaces.GerenciadorPessoas;
import com.iapcursos.portal.procefet.modelo.beans.sessions.interfaces.GerenciadorProfessores;
import com.iapcursos.portal.procefet.modelo.beans.sessions.interfaces.GerenciadorTiposConteudo;
import com.iapcursos.portal.procefet.modelo.beans.sessions.interfaces.GerenciadorTurmas;
import com.iapcursos.portal.procefet.modelo.beans.sessions.interfaces.GerenciadorUnidades;
import com.iapcursos.portal.procefet.modelo.beans.sessions.interfaces.Sistema;

/**
 * @author Gleison
 *
 */
@Stateless(mappedName="sistemaBean")
public class SistemaBean implements Sistema{
	/**
	 *
	 */
	@EJB(mappedName = "gerenciadorHorarios")
	GerenciadorHorarios gerenciadorHorarios;
	@EJB(mappedName = "gerenciadorDisciplinas")
	GerenciadorDisciplinas gerenciadorDisciplinas;
	@EJB(mappedName = "gerenciadorProfessores")
	GerenciadorProfessores gerenciadorProfessores;
	@EJB(mappedName = "gerenciadorAulas")
	GerenciadorAulas gerenciadorAulas;
	@EJB(mappedName = "gerenciadorTurmas")
	GerenciadorTurmas gerenciadorTurmas;
	@EJB(mappedName = "gerenciadorConteudo")
	GerenciadorConteudo gerenciadorConteudo;
	@EJB(mappedName= "gerenciadorTiposConteudo")
	GerenciadorTiposConteudo gerenciadorTiposConteudo;
	@EJB(mappedName= "gerenciadorPessoas")
	GerenciadorPessoas gerenciadorPessoas;
	@EJB(mappedName="gerenciadorPapeis")
	GerenciadorPapeis gerenciadorPapeis;
	@EJB(mappedName="gerenciadorUnidades")
	GerenciadorUnidades gerenciadorUnidades;


	public SistemaBean() {

	}

	public void persistirUnidade(Unidade unidade){
		this.gerenciadorHorarios.persistirUnidade(unidade);
	}

	public void persistConteudo(Conteudo conteudo){
		this.gerenciadorConteudo.persistConteudo(conteudo);
	}

	@Override
	public List<Unidade> recuperarUnidades() {
		return this.gerenciadorHorarios.recuperarUnidades();
	}

	@Override
	public Turma recuperarTurma(int id) {
		return gerenciadorHorarios.recuperarTurma(id);
	}

	@Override
	public Horario recuperarHorario(int id) {
		return gerenciadorHorarios.recuperarHorario(id);
	}

	@Override
	public List<Disciplina> recuperarDisciplinas() {
		return gerenciadorDisciplinas.recuperarDisciplinas();
	}

	@Override
	public List<Pessoa> recuperarProfessores() {
		return gerenciadorProfessores.recuperaProfessores();
	}

	@Override
	public Disciplina recuperarDisciplina(int id) {
		return gerenciadorDisciplinas.recuperarDisciplina(id);
	}

	@Override
	public Pessoa recuperarProfessor(int id) {
		return gerenciadorProfessores.recuperarProfessor(id);
	}

	@Override
	public Aula recuperarAula(int id) {
		return gerenciadorAulas.recuperarAula(id);
	}

	@Override
	public void atualizarAula(Aula aula) {
		gerenciadorAulas.atualizarAula(aula);
	}

	@Override
	public List<Turma> recuperarTurmas() {
		return gerenciadorTurmas.getAllTurmas();
	}

	public List<Conteudo> getAllContent(){
		return gerenciadorConteudo.getAllContent();
	}

	@Override
	public List<TipoConteudo> getTodosOsTipos() {
		return gerenciadorTiposConteudo.getTodosOsTipos();
	}

	@Override
	public List<Pessoa> getTodasAsPessoas() {
		return gerenciadorPessoas.getTodasAsPessoas();
	}

	@Override
	public Pessoa getPessoaById(int idPessoa){
		return gerenciadorPessoas.getPessoaByid(idPessoa);
	}

	@Override
	public TipoConteudo getTipoById(int id) {
		return gerenciadorTiposConteudo.getTipoById(id);
	}

	@Override
	public void removeConteudo(int id){
		gerenciadorConteudo.removeConteudo(id);
	}

	@Override
	public Conteudo getConteudoById(int id) {
		return gerenciadorConteudo.getConteudoById(id);
	}

	@Override
	public List<Conteudo> getConteudosByIdTipo(int id) {
		return gerenciadorConteudo.getConteudosByIdTipo(id);
	}

	@Override
	public Conteudo getUltimoConteudoByIdTipo(int idTipo) {
		return gerenciadorConteudo.getUltimoConteudoByIdTipo(idTipo);
	}

	@Override
	public List<String> recuperarNomePapeis() {
		return this.gerenciadorPapeis.recuperarNomePapeis();
	}

	@Override
	public Turma getTurmaById(Integer id) {
		Turma turma = this.gerenciadorTurmas.getTurmaById(id);
		return turma;
	}

	@Override
	public void persistirTurma(Turma turma) {
		this.gerenciadorTurmas.persistirTurma(turma);
		
	}

	@Override
	public void persistirPessoa(Pessoa pessoa) {
		this.gerenciadorPessoas.persistirPessoa(pessoa);
		
	}

	@Override
	public List<Pessoa> getAllPessoas() {
		List<Pessoa> pessoas = this.gerenciadorPessoas.getAllPessoas();
		return pessoas;
	}
	
	@Override
	public void atualizarConteudo(Conteudo conteudo){
		this.gerenciadorConteudo.atualizarConteudo(conteudo);
	}

	@Override
	public Pessoa getPessoaByLogin(String login) {
		Pessoa pessoa = this.gerenciadorPessoas.getPessoaByLogin(login);
		return pessoa;
	}

	@Override
	public boolean existeLogin(String login) {
		return this.gerenciadorPessoas.existeLogin(login);
	}
	
	@Override
	public void atualizarPessoa(Pessoa pessoa){
		this.gerenciadorPessoas.atualizarPessoa(pessoa);
	}

	@Override
	public Unidade getUnidadeById(Integer id) {
		return this.gerenciadorUnidades.getUnidadeByID(id);
	}
	
	@Override
	public List<Conteudo> getConteudos(int Quantidade, int idCategoria){
		return this.gerenciadorConteudo.getConteudos(Quantidade, idCategoria);
	}

	@Override
	public void atualizarTurma(Turma turma) {
		this.gerenciadorTurmas.atualizarTurma(turma);		
	}

	@Override
	public void excluirPessoa(Pessoa pessoa) {
		this.gerenciadorPessoas.excluirPessoa(pessoa);
		
	}

	@Override
	public void atualizarTurmaAlunos(Turma turma, Pessoa aluno) {
		this.gerenciadorTurmas.atualizarTurma(turma, aluno);
		
	}
}
